Skip to main content

锐捷与思科混合组网场景下 PVST+ BPDU 导致端口阻塞问题

一、网络环境

1. 设备环境

设备角色厂商及型号软件版本生成树协议
核心交换机锐捷 S7805CMSTP
接入交换机Cisco12.5MSTP

网络采用锐捷核心、Cisco 接入的混合组网架构,整网统一采用 MSTP,锐捷核心作为整网根桥。

2. 网络拓扑

锐捷 S7805C
MSTP Root

┌──────────┴──────────┐
│ │
Cisco SW1 Cisco SW2
MSTP MSTP

二、生成树配置

1. 锐捷核心

锐捷核心启用 MSTP,当前仅配置 MST Instance 0,所有 VLAN 映射至 MST0:

RG_Core#show spanning-tree mst configuration

Multi spanning tree protocol : Enable
Name :
Revision : 0

Instance Vlans Mapped
-------- --------------------------------------------
0 ALL
-----------------------------------------------------

MSTP 状态正常,核心交换机为 MST0 根桥:

RG_Core#show spanning-tree summary

Spanning tree enabled protocol mstp

MST 0 vlans map : ALL
Root ID Priority 0
Address 5000.0003.0001
this bridge is root

Interface Role Sts Cost Prio OperEdge Type
--------------- ---- --- ------- ------- -------- ----------------
Gi0/0 Desg FWD 20000 128 False P2p
Gi0/1 Desg FWD 20000 128 False P2p

核心上联接口配置了 BPDU Filter:

interface GigabitEthernet 0/0
switchport mode trunk
spanning-tree bpdufilter enable

interface GigabitEthernet 0/1
switchport mode trunk
spanning-tree bpdufilter enable

2. Cisco 接入交换机

Cisco SW1、SW2 均启用 MSTP:

ASW1#show spanning-tree summary

Switch is in mst mode (IEEE Standard)

PVST Simulation is enabled
Bridge Assurance is enabled
...
MST0 0 Blocking
0 Listening
0 Learning
8 Forwarding
8 STP Active

MST Region 配置如下:

Name []
Revision 0

Instance Vlans mapped
-------- ---------------------------------------------------------------------
0 1-4094

即 Cisco 接入交换机与锐捷核心均采用 MSTP,且当前均将所有 VLAN 映射至 MST0。


三、故障现象

问题一:网络中持续存在 Cisco PVST+ BPDU

在 Cisco 接入交换机上抓包发现,网络中持续存在目的 MAC 为:

01:00:0C:CC:CC:CD

的 BPDU 报文。

该目的 MAC 为 Cisco PVST+ 所使用的组播 MAC,可作为识别 PVST+ BPDU 的重要特征。

Wireshark 过滤条件:

eth.dst == 01:00:0c:cc:cc:cd

image-20260904142056597

在部分 Cisco 接入交换机上可以持续捕获到 PVST+ BPDU。

同时,故障期间曾出现部分 Cisco 接入交换机上联端口进入 Blocking 状态的现象。

但由于故障发生后现场未能完整保留当时的 STP 状态及 BPDU 报文,目前无法复现该 Blocking 现象,因此暂无法进一步确认端口进入 Blocking 的直接触发原因。


四、BPDU Filter 验证

1. 验证目的

为避免生成树 BPDU 在核心与接入交换机之间传播,在锐捷核心上联接口配置:

spanning-tree bpdufilter enable

按照预期,配置 BPDU Filter 后,该接口不应继续发送或接收生成树 BPDU。


2. 实际验证结果

配置 BPDU Filter 后,在 Cisco 接入交换机上联接口继续进行抓包,并使用:

eth.dst == 01:00:0c:cc:cc:cd

过滤 PVST+ BPDU。

实际仍可以捕获到 PVST+ BPDU。

即:

锐捷核心

│ 配置 BPDU Filter


Cisco 接入交换机

└── 仍可捕获 PVST+ BPDU

因此可以确认:

锐捷核心接口配置 BPDU Filter 后,仍存在目的 MAC 为 01:00:0C:CC:CC:CD 的 PVST+ 报文到达 Cisco 上联接口,BPDU Filter 未达到预期的 PVST+ 报文隔离效果。


五、PVST+ 报文特征

经抓包确认,Cisco PVST+ BPDU 使用以下目的 MAC:

生成树协议BPDU 目的 MAC
STP(802.1D)01:80:C2:00:00:00
RSTP(802.1w)01:80:C2:00:00:00
MSTP(802.1s)01:80:C2:00:00:00
Cisco PVST+01:00:0C:CC:CC:CD

其中:

01:00:0C:CC:CC:CD

是本次问题中用于识别及过滤 Cisco PVST+ BPDU 的关键特征。


六、解决方案

考虑到当前网络已经统一采用 MSTP,且锐捷核心与 Cisco 接入交换机之间无需使用 PVST+ 进行生成树互操作,为避免 PVST+ BPDU 在网络中继续传播,采用二层 MAC ACL 对 PVST+ BPDU 进行过滤。

配置如下:

mac access-list extended NoPVST
10 deny any host 0100.0ccc.cccd etype-any
20 permit any any etype-any

interface Vlan 1
mac access-group NoPVST in
mac access-group NoPVST out

其中:

0100.0ccc.cccd

对应:

01:00:0C:CC:CC:CD

即 Cisco PVST+ BPDU 使用的目的 MAC。

ACL 处理逻辑:

目的 MAC = 01:00:0C:CC:CC:CD

└── DENY → 丢弃 PVST+ BPDU

其他二层报文

└── PERMIT → 正常转发

七、验证结果

配置 MAC ACL 后,再次在 Cisco 接入交换机上联接口进行抓包,并使用:

eth.dst == 01:00:0c:cc:cc:cd

进行过滤。

验证结果显示:

网络中不再能够捕获到目的 MAC 为 01:00:0C:CC:CC:CD 的 PVST+ BPDU 报文。

PVST+ BPDU 已被有效隔离,网络运行恢复正常,问题得到解决。


结论

通过现场抓包确认,网络中存在 Cisco PVST+ BPDU,其目的 MAC 为:

01:00:0C:CC:CC:CD

在锐捷核心接口配置 BPDU Filter 后,仍能够在 Cisco 接入交换机上联接口捕获到 PVST+ BPDU,说明当前 BPDU Filter 配置未能有效阻断该类 PVST+ 报文。

由于故障发生时未能保留 Cisco 端口 Blocking 状态对应的完整 STP 日志及 BPDU 报文,目前无法确认 PVST+ BPDU 与端口 Blocking 之间的直接触发关系。因此,建议后续如再次发生端口 Blocking,应第一时间在 Cisco 侧执行:

show spanning-tree inconsistentports
show spanning-tree interface <interface> detail
show spanning-tree vlan <vlan>
show spanning-tree mst detail

并同步抓取故障接口 BPDU,以进一步确认具体的 Blocking 触发机制。

最终通过在二层转发路径上针对:

01:00:0C:CC:CC:CD

实施 MAC ACL,成功阻断 Cisco PVST+ BPDU,验证网络中不再出现 PVST+ 报文,问题得到解决。